package ai.fabu.dataplatform.service;

import ai.fabu.dataplatform.*;
import ai.fabu.dataplatform.bean.util.IndexData;
import ai.fabu.dataplatform.bean.util.Pair;
import ai.fabu.dataplatform.help.Result;
import org.springframework.retry.annotation.Retryable;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;

public interface ApiForImportBagService {
    //save

    Result<Long> saveBinData(@NotNull IndexData indexData, @NotNull List<String> binPathList);
    Result<Long> saveFramesMetadata(@NotNull IndexData indexData, @NotNull List<Pair<String, byte[]>> metadataList);

    // task

    Result<Task> getTask(@NotBlank String source);
    Result updateTask(@NotNull UpdateTaskRequest request);
    Result generateGroupMapAndMileage(@NotBlank String taskId);
    Result generateBagRecord(@NotBlank String taskId);
    Result generateBagGPS(@NotBlank String taskId);
    Result updateGroupTaskCompleteStatus(@NotBlank String taskId, @NotNull Byte completeStatus);


    boolean updateTaskScheduleTimer(String taskId, int status);
}
